package com.zhouchao.register;

import com.zhouchao.rpc.common.Server;

import java.util.List;

/**
 * @Author: zhouchao
 * @Date: 2021/08/09 14:45
 * @Description:
 */
public interface RegisterManager {


    /**
     * 服务注册
     *
     * @param ip   服务ip
     * @param port 服务端口
     * @return 是否注册成功
     */
    Boolean register(String ip, int port);

    /**
     * 服务发现
     *
     * @return 服务列表
     */
    List<Server> discover();

    /**
     * 获取节点数据
     *
     * @param path
     * @return
     */
    String getNodeValue(String path);

    /**
     * 更新zookeeper数据
     *
     * @param path
     * @param data
     * @return
     */
    boolean updataNodeData(String path, String data);

    /**
     * 上报服务状态
     * @param ip
     * @param port
     * @param data
     * @return
     */
    boolean reportServer(String ip, int port, String data);
}
